package com.chixing.config;

import org.apache.commons.codec.digest.DigestUtils;
import org.springframework.stereotype.Component;

@Component
public class Md {

    private static final String salt = "1a2b3c4d"; //盐 这个自定义

    public static String  md5(String sac){
        //commons-lang3  version:3.6
        String md5 = DigestUtils.md5Hex(sac);
        //System.out.println(md5);
        return md5;
    }

    //第一次明文加固定salt加密  用户输入密码到后端
    public static String inputPassToFormPass(String inputPass){
        //打乱
        String str = ""+salt.charAt(0)+salt.charAt(2) + inputPass +salt.charAt(5) + salt.charAt(4);
        //System.out.println(str);
        return md5(str);
    }
    //第二次加密md5的值+随机盐再进行md5加密   拿到第一次的加密结果再次进行加密
    public static String formPassToDBPass(String formPass, String salt){
        String str  = ""+salt.charAt(0)+salt.charAt(2) + formPass +salt.charAt(5) + salt.charAt(4);
        //System.out.println(str);
        return md5(str);
    }
    //整体加密  后端传到数据库前，数据库的密码加进行了加密
    public static String inputPassToDbPass(String pass ,String salt){
        //第一次加密
        String onePass = inputPassToFormPass(pass);
        //第二次加密
        return formPassToDBPass(onePass,salt);
    }
    //测试
//    public static void main(String[] args) {
//        System.out.println(inputPassToFormPass("123456"));
//        System.out.println(formPassToDBPass("d3b1294a61a07da9b49b6e22b2cbd7f9","1234567890"));
//        System.out.println(inputPassToDbPass("123456","1234567890"));

}

